package org.quincy.netty.test.vo;

import java.util.Map;

import org.quincy.rock.comm.netty.NettyUtil;

import io.netty.buffer.ByteBuf;

/**
 * <b>登录报文。</b>
 * <p><b>详细说明：</b></p>
 * <!-- 在此添加详细说明 -->
 * 无。
 * <p><b>修改列表：</b></p>
 * <table width="100%" cellSpacing=1 cellPadding=3 border=1>
 * <tr bgcolor="#CCCCFF"><td>序号</td><td>作者</td><td>修改日期</td><td>修改内容</td></tr>
 * <!-- 在此添加修改列表，参考第一行内容 -->
 * <tr><td>1</td><td>wks</td><td>2018年5月14日 下午4:41:01</td><td>建立类型</td></tr>
 * 
 * </table>
 * @version 1.0
 * @author wks
 * @since 1.0
 */
public class LoginMessage extends DeviceId {

	/**
	 * serialVersionUID。
	 */
	private static final long serialVersionUID = 8544261101249107395L;

	/**
	 * 用户名。
	 */
	private String userName;

	/**
	 * 密码。
	 */
	private String password;

	/**
	 * <b>获得用户名。</b>
	 * <p><b>详细说明：</b></p>
	 * <!-- 在此添加详细说明 -->
	 * 无。
	 * @return 用户名
	 */
	public String getUserName() {
		return userName;
	}

	/**
	 * <b>设置用户名。</b>
	 * <p><b>详细说明：</b></p>
	 * <!-- 在此添加详细说明 -->
	 * 无。
	 * @param userName 用户名
	 */
	public void setUserName(String userName) {
		this.userName = userName;
	}

	/**
	 * <b>获得密码。</b>
	 * <p><b>详细说明：</b></p>
	 * <!-- 在此添加详细说明 -->
	 * 无。
	 * @return 密码
	 */
	public String getPassword() {
		return password;
	}

	/**
	 * <b>设置密码。</b>
	 * <p><b>详细说明：</b></p>
	 * <!-- 在此添加详细说明 -->
	 * 无。
	 * @param password 密码
	 */
	public void setPassword(String password) {
		this.password = password;
	}

	/** 
	 * toBinary。
	 * @see org.quincy.netty.test.vo.DeviceId#toBinary(io.netty.buffer.ByteBuf, java.util.Map)
	 */
	@Override
	public ByteBuf toBinary(ByteBuf buf, Map<String, Object> ctx) {
		buf = super.toBinary(buf, ctx);
		buf = NettyUtil.writeVarchar(buf, this.getUserName());
		buf = NettyUtil.writeVarchar(buf, this.getPassword());
		return buf;
	}

	/** 
	 * fromBinary。
	 * @see org.quincy.netty.test.vo.DeviceId#fromBinary(io.netty.buffer.ByteBuf, java.util.Map)
	 */
	@Override
	public LoginMessage fromBinary(ByteBuf buf, Map<String, Object> ctx) {
		super.fromBinary(buf, ctx);
		setUserName(NettyUtil.readVarchar(buf));
		setPassword(NettyUtil.readVarchar(buf));
		return this;
	}
}
